<?php namespace system\model;

//	框架的核心模型类
	use hdphp\model\Model;

//	模型类：文章表模型
	class Arc extends Model{
		protected $table='article';
		
		protected $validate=array(
			array('title','required','文章标题不能为空',3,1)
//			array('','','',3,1);
		);		
//		自动完成配置文件
		protected $auto=array(
//			写入时给post数据添加一下字段数据
			array('sendtime','time','function',3,1),
			array('user_uid','getUserUid','method',3,1)
		);
//		获取当前用户ID信息方法
		public function getUserUid(){
			return $_SESSION['id'];
		}
		public function store(){
//			P($_POST);die;
			if(!$this->create()) return FALSE;
			
//			验证文章内容是否无误
			$arcMyData=new \system\model\ArcData;
			if(!$arcMyData->create()){
				$this->error=$arcMyData->getError();
				return FALSE;
			}
//			判断标签是否存在
			if(!isset($this->data['tid'])){
				$this->error='标签没选择';
				return FALSE;
			}
//			var_dump($this->data);die;
//			写入数据库
			$aid=$this->add();
			
//			写入内容表
//			var_dump($aid);die;
			$arcMyData->data['article_aid']=$aid;
			$arcMyData->add();
			
//			写入tag标签
			$tagMyData=new \system\model\arcTag;
			foreach(Q('post.tid') as $v){
				$data=array(
					'article_aid'=>$aid,
					'tag_tid'=>$v,
				);
				$tagMyData->add($data);
			}

			return true;
		}

// 模型中的编辑方法
		public function edit(){
			// 判断
			if(!$this->create()) return FALSE;
			$arcDataModel=new \system\model\ArcData;
			if(!$arcDataModel->create()){
//				将arcData模型中的错误取出来，压入当前模型的错误属性中
				$this->error=$arcDataModel->getError();
				return FALSE;
			}
//			如果没有选择标签返回错误信息
			if(!isset($_POST['tid'])){
//				将错误提示消息压入错误属性中去
				$this->error='标签没有选择！';
				return FALSE;
			}
			$this->save();
// 获取当前编辑的文章的主键
			$aid=Q('post.aid',0,'intval');
			
// 			2修改文章标签中间表
// 			如果是多对多的中间表，要修改数据
			$arcTagModel=new \system\model\ArcTag;
// 			先将原数据库中的所有文章标签数据，删除
			$arcTagModel->where('article_aid',$aid)->delete();
// 			再将新写入的文章标签中间表数据写入数据库
			foreach(Q('post.tid') as $v){
				$data=array(
					'article_aid'=>$aid,
					'tag_tid'=>$v,
				);
				$arcTagModel->add($data);
			}
// 			3.修改文章内容表
			$arcDataModel->data['article_aid']=$aid;
// 			update方法不回自动获取$this->data这个成员属性
			$articledata=array(
				'keywords'=>$_POST['keywords'],
				'des'=>htmlspecialchars($_POST['des']),
				'content'=>$_POST['content']
				);
			$arcDataModel->where('article_aid',$aid)->update($articledata);
			return true;
		}

		public function del(){
//		获取aid
		$aid=Q('get.aid',0,'intval');
		$arcMyData=new \system\model\ArcData;
		$re=$arcMyData->where('article_aid',$aid)->delete();
		if(!$re){
			$this->error='内容删除失败';
			return FALSE;
		}
		$tagMyData=new \system\model\arcTag;
		$re=$tagMyData->where('article_aid',$aid)->delete();
		if(!$re){
			$this->error='标签删除失败';
			return FALSE;
		}
		
		$re=$this->db->where('aid',$aid)->delete();
		if(!$re){
			$this->error='文章删除失败';
			return FALSE;
		}
		message('文章删除成功',U('recycle'));
			
		}
	
	}
	
	
	
	?>